﻿using System;
using System.Web;
using System.Web.Routing;
using Module.QuanTriHeThong.DanhMuc;

namespace HospitalManager
{
    public class Global : HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            Application["ChuaDuyet"] = 0; // Trạng thái chờ chuyển lên kế toán.
            Application["DangDuyet"] = 1; // Trạng thái đã chuyển lên kế toán.
            Application["DaDuyet"] = 2; // Trạng thái đã chấp nhận từ phòng kế toán.
            //Cấu hình Rewrite Url website
            RegisterRoutes(RouteTable.Routes);
            RegisterRoutes_QuanLyDuoc(RouteTable.Routes);
            RegisterRoutes_QuanTriHeThong(RouteTable.Routes);
        }

        protected void Session_Start(object sender, EventArgs e)
        {
            Response.RedirectToRoute(Session["username"] != null ? "Index" : "DangNhap");
        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {
        }

        protected void Session_End(object sender, EventArgs e)
        {
            if (Session["username"] == null) return;
            var _dmTaiKhoan = new DMTaiKhoan();
            _dmTaiKhoan.Update_IsLogin(Session["username"].ToString().Trim(), false);
        }

        protected void Application_End(object sender, EventArgs e)
        {

        }

        static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapPageRoute("DangNhap", "", "~/Site/DangNhap.aspx");
            routes.MapPageRoute("Index", "trang-chu", "~/Site/Index.aspx");
            routes.MapPageRoute("ThongTinBenhNhan", "thong-tin-ca-nhan", "~/Site/ThongTinCaNhan.aspx");
            // Đường dẫn các tab phần Tiếp đón bệnh nhân
            routes.MapPageRoute("TiepDonBenhNhan", "tiep-don-benh-nhan", "~/");
            // Đường dẫn các tab phần Quản lý ngoại trú
            routes.MapPageRoute("QuanLyNgoaiTru", "ngoai-tru", "~/");
            // Đường dẫn các tab phần Quản lý nội trú
            routes.MapPageRoute("QuanLyNoiTru", "noi-tru", "~/");
            // Đường dẫn các tab phần Quản lý dược
            routes.MapPageRoute("QuanLyDuoc/HeThongNhapXuat", "duoc/nhap-xuat", "~/QuanLyDuoc/HeThongNhapXuat/HeThongNhapXuat.aspx");
            routes.MapPageRoute("QuanLyDuoc/HeThongTaiChinh", "duoc/tai-chinh", "~/QuanLyDuoc/HeThongTaiChinh/HeThongTaiChinh.aspx");
            routes.MapPageRoute("QuanLyDuoc/HeThongBaoCao", "duoc/bao-cao", "~/QuanLyDuoc/HeThongBaoCao/HeThongBaoCao.aspx");
            // Đường dẫn các tab phần Quản lý báo cáo
            routes.MapPageRoute("QuanLyBaoCao", "bao-cao", "~/");
            // Đường dẫn các tab phần Quản trị hệ thống
            routes.MapPageRoute("QuanTriHeThong/DanhMuc", "he-thong/danh-muc", "~/QuanTriHeThong/DanhMuc/HeThongDanhMuc.aspx");
            routes.MapPageRoute("QuanTriHeThong/ThietLapHeThong", "he-thong/thiet-lap-he-thong", "~/QuanTriHeThong/ThietLapHeThong/ThietLapHeThong.aspx");
        }

        static void RegisterRoutes_QuanLyDuoc(RouteCollection routes)
        {
            // Hệ thống nhập xuất
            routes.MapPageRoute("HeThongNhapXuat/PhieuNhapVatTu", "duoc/nhap-xuat/nhap-vt", "~/QuanLyDuoc/HeThongNhapXuat/PhieuNhapVatTu/PhieuNhapVatTu.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuHuy", "duoc/nhap-xuat/huy", "~/QuanLyDuoc/HeThongNhapXuat/PhieuHuy/PhieuHuy.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuTraNhaCungCap", "duoc/nhap-xuat/tra-ncc", "~/QuanLyDuoc/HeThongNhapXuat/PhieuTraNhaCungCap/PhieuTraNhaCungCap.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuXuatBanLe", "duoc/nhap-xuat/xuat-ban-le", "~/QuanLyDuoc/HeThongNhapXuat/PhieuXuatBanLe/PhieuXuatBanLe.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuXuatKhac", "duoc/nhap-xuat/xuat-khac", "~/QuanLyDuoc/HeThongNhapXuat/PhieuXuatKhac/PhieuXuatKhac.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuXuatKhoSangKho", "duoc/nhap-xuat/xuat-kho-sang-kho", "~/QuanLyDuoc/HeThongNhapXuat/PhieuXuatKhoSangKho/PhieuXuatKhoSangKho.aspx");
            routes.MapPageRoute("HeThongNhapXuat/PhieuYeuCauXuatVatTu", "duoc/nhap-xuat/yc-xuat-vt", "~/QuanLyDuoc/HeThongNhapXuat/PhieuYeuCauXuatVatTu/PhieuYeuCauXuatVatTu.aspx");
            // Thanh toán hóa đơn
            routes.MapPageRoute("ThanhToanHoaDon/PhieuNhapVatTu", "duoc/tai-chinh/nhap-vt", "~/QuanLyDuoc/HeThongTaiChinh/ThanhToanHoaDon/PhieuNhapVatTu.aspx");
        }

        private static void RegisterRoutes_QuanTriHeThong(RouteCollection routes)
        {
            // Danh mục
            routes.MapPageRoute("DanhMuc/DMBuong", "he-thong/danh-muc/buong", "~/QuanTriHeThong/DanhMuc/DMBuong.aspx");
            routes.MapPageRoute("DanhMuc/DMDanToc", "he-thong/danh-muc/dan-toc", "~/QuanTriHeThong/DanhMuc/DMDanToc.aspx");
            routes.MapPageRoute("DanhMuc/DMDichVu", "he-thong/danh-muc/dich-vu", "~/QuanTriHeThong/DanhMuc/DMDichVu.aspx");
            routes.MapPageRoute("DanhMuc/DMDichVuChiTiet", "he-thong/danh-muc/dich-vu-chi-tiet", "~/QuanTriHeThong/DanhMuc/DMDichVuChiTiet.aspx");
            routes.MapPageRoute("DanhMuc/DMDoiTuongBaoHiem", "he-thong/danh-muc/doi-tuong-bao-hiem", "~/QuanTriHeThong/DanhMuc/DMDoiTuongBaoHiem.aspx");
            routes.MapPageRoute("DanhMuc/DMDoiTuongBenhNhan", "he-thong/danh-muc/doi-tuong-benh-nhan", "~/QuanTriHeThong/DanhMuc/DMDoiTuongBenhNhan.aspx");
            routes.MapPageRoute("DanhMuc/DMDonVi", "he-thong/danh-muc/don-vi", "~/QuanTriHeThong/DanhMuc/DMDonVi.aspx");
            routes.MapPageRoute("DanhMuc/DMGioiTinh", "he-thong/danh-muc/gioi-tinh", "~/QuanTriHeThong/DanhMuc/DMGioiTinh.aspx");
            routes.MapPageRoute("DanhMuc/DMGiuong", "he-thong/danh-muc/giuong", "~/QuanTriHeThong/DanhMuc/DMGiuong.aspx");
            routes.MapPageRoute("DanhMuc/DMHuongXuTri", "he-thong/danh-muc/huong-xu-tri", "~/QuanTriHeThong/DanhMuc/DMHuongXuTri.aspx");
            routes.MapPageRoute("DanhMuc/DMKCBBanDau", "he-thong/danh-muc/kcb-ban-dau", "~/QuanTriHeThong/DanhMuc/DMKCBBanDau.aspx");
            routes.MapPageRoute("DanhMuc/DMKhachHang", "he-thong/danh-muc/khach-hang", "~/QuanTriHeThong/DanhMuc/DMKhachHang.aspx");
            routes.MapPageRoute("DanhMuc/DMKho", "he-thong/danh-muc/kho", "~/QuanTriHeThong/DanhMuc/DMKho.aspx");
            routes.MapPageRoute("DanhMuc/DMKhoa", "he-thong/danh-muc/khoa", "~/QuanTriHeThong/DanhMuc/DMKhoa.aspx");
            routes.MapPageRoute("DanhMuc/DMLoaiDichVu", "he-thong/danh-muc/loai-dich-vu", "~/QuanTriHeThong/DanhMuc/DMLoaiDichVu.aspx");
            routes.MapPageRoute("DanhMuc/DMLoaiKhachHang", "he-thong/danh-muc/loai-khach-hang", "~/QuanTriHeThong/DanhMuc/DMLoaiKhachHang.aspx");
            routes.MapPageRoute("DanhMuc/DMLoaiVatTu", "he-thong/danh-muc/loai-vat-tu", "~/QuanTriHeThong/DanhMuc/DMLoaiVatTu.aspx");
            routes.MapPageRoute("DanhMuc/DMMaBenhICD", "he-thong/danh-muc/ma-benh-icd", "~/QuanTriHeThong/DanhMuc/DMMaBenhICD.aspx");
            routes.MapPageRoute("DanhMuc/DMNgheNghiep", "he-thong/danh-muc/nghe-nghiep", "~/QuanTriHeThong/DanhMuc/DMNgheNghiep.aspx");
            routes.MapPageRoute("DanhMuc/DMNguonGocXuatXu", "he-thong/danh-muc/nguon-goc-xuat-xu", "~/QuanTriHeThong/DanhMuc/DMNguonGocXuatXu.aspx");
            routes.MapPageRoute("DanhMuc/DMNhaCungCap", "he-thong/danh-muc/nha-cung-cap", "~/QuanTriHeThong/DanhMuc/DMNhaCungCap.aspx");
            routes.MapPageRoute("DanhMuc/DMNhomDichVu", "he-thong/danh-muc/nhom-dich-vu", "~/QuanTriHeThong/DanhMuc/DMNhomDichVu.aspx");
            routes.MapPageRoute("DanhMuc/DMNhomDoiTuongBaoHiem", "he-thong/danh-muc/nhom-doi-tuong-bao-hiem", "~/QuanTriHeThong/DanhMuc/DMNhomDoiTuongBaoHiem.aspx");
            routes.MapPageRoute("DanhMuc/DMNhomVatTu", "he-thong/danh-muc/nhom-vat-tu", "~/QuanTriHeThong/DanhMuc/DMNhomVatTu.aspx");
            routes.MapPageRoute("DanhMuc/DMPhongBan", "he-thong/danh-muc/phong-ban", "~/QuanTriHeThong/DanhMuc/DMPhongBan.aspx");
            routes.MapPageRoute("DanhMuc/DMQuanHuyen", "he-thong/danh-muc/quan-huyen", "~/QuanTriHeThong/DanhMuc/DMQuanHuyen.aspx");
            routes.MapPageRoute("DanhMuc/DMTaiKhoan", "he-thong/danh-muc/taikhoan", "~/QuanTriHeThong/DanhMuc/DMTaiKhoan.aspx");
            routes.MapPageRoute("DanhMuc/DMTinhThanh", "he-thong/danh-muc/tinh-thanh", "~/QuanTriHeThong/DanhMuc/DMTinhThanh.aspx");
            routes.MapPageRoute("DanhMuc/DMVanChuyen", "he-thong/danh-muc/van-chuyen", "~/QuanTriHeThong/DanhMuc/DMVanChuyen.aspx");
            routes.MapPageRoute("DanhMuc/DMVatTu", "he-thong/danh-muc/vat-tu", "~/QuanTriHeThong/DanhMuc/DMVatTu.aspx");
            routes.MapPageRoute("DanhMuc/DMXaPhuong", "he-thong/danh-muc/xa-phuong", "~/QuanTriHeThong/DanhMuc/DMXaPhuong.aspx");
            routes.MapPageRoute("DanhMuc/DMChucVu", "he-thong/danh-muc/chuc-vu", "~/QuanTriHeThong/DanhMuc/DMChucVu.aspx");
            // Thiết lập hệ thống
            routes.MapPageRoute("ThietLapHeThong/Kho_Khoa", "he-thong/thiet-lap-he-thong/kho-khoa", "~/QuanTriHeThong/ThietLapHeThong/Kho_Khoa.aspx");
            routes.MapPageRoute("ThietLapHeThong/TaiKhoan_ChucVu_PhongBan", "he-thong/thiet-lap-he-thong/taikhoan-chucvu-phongban", "~/QuanTriHeThong/ThietLapHeThong/TaiKhoan_ChucVu_PhongBan.aspx");
        }
    }
}